package com.bjpowerrnode.javase.array;
/*
第一题：
    编写程序，使用一维数组，模拟栈数据结构。
    要求：
        1、这个栈可以存储java中的任何类型的数据结构
        2、在栈中提供push方法模拟压栈。(栈满了有提示信息)
        3、在栈中提供pop方法模拟弹栈。(栈空了也要有提示信息)
        4、编写测试程序，new栈对象，调用push pop方法来模拟压栈弹栈的动作。
    public class Mystack{//栈类
        //提供一个数组来存储栈中的元素
        Object[] elements;

        //栈帧（永远指向栈顶部的元素）
        int index;

        //构造方法
        给初始化数组一个初始化容量。

        //push方法(push方法压栈)
        //压栈表示多一个元素
        //但是栈如果已满，压栈失败

       //pop方法
       //pop表示栈中少一个元素。

    }
 */
public class Queeze1 {
    public static void main(String[] args) {
    Object i = "string";
    int a = 20;
    String str = "love";

    Object[] obj = new Object[3];
    MyStack stack  = new MyStack(obj);
    stack.push(a);
    stack.push(a);
    stack.push(a);
    stack.push(a);
    }
}
 class MyStack{
    Object[] element;
    int index;


    public MyStack(){
        element = new Object[10];
    }
     public MyStack(Object[] element){
        this.element = element;
    }

    public void push( Object obj){
        if(index >= element.length){
            System.out.println("栈已满。");
            return;
        }
        element[index] = obj;
        index += 1;
        System.out.println("栈的大小为：" + element.length + "; 目前栈帧的位置为:" + index);
    }

    public Object pop(){
        if(index == 0){
            System.out.println("栈为空，无法在弹栈。");
            return null;
        }
        Object temp = element[index];
        index -= 1;
        System.out.println("栈的大小为：" + element.length + "; 目前栈帧的位置为:" + index);
        return temp;
    }


 }
